<?php
class Gallery_PControlPanelController extends XPHP_Controller
{
    public function _init ()
    {
        $this->loadLayout('ControlPanel/XAdmin');
    }
    #[Authorize(roles = 'Administrator')]
    public function indexAction ()
    {
        //Lấy ra thông tin của thư viện ảnh
        $gallery = new Areas_Gallery_Models_Gallery($this->params[0]);
        //Lấy ra danh sách các thư viện ảnh đưa vào select box
        $galleries = $gallery->getGalleries();
        $gallerySelectList = array();
        foreach ($galleries as $g) {
            $gallerySelectList[$g->id] = $g->name;
        }
        //Lấy ra toàn bộ danh sách các ảnh của thư viện ảnh
        $galleryPhotoModel = new Areas_Gallery_Models_GalleryPhoto();
        $photos = $galleryPhotoModel->getPhotos($this->params[0]);
        //Trả về view
        $this->view->gallery = $gallery;
        $this->view->photos = $photos;
        $this->view->galleries = $galleries;
        $this->view->gallerySelectList = $gallerySelectList;
        return $this->view();
    }
    #[Authorize(roles = 'Administrator')]
    public function createAction ()
    {
        //Lấy ra thông tin của thư viện ảnh
        $gallery = new Areas_Gallery_Models_Gallery($this->params[0]);
        //Trả về view
        $this->view->gallery = $gallery;
        return $this->view();
    }
    #[Authorize(roles = 'Administrator')]
    public function createPost (Areas_Gallery_Models_GalleryPhoto $model)
    {
        if ($this->model->validate()) {
            $this->model->gallery_id = $this->params[0];
            if ($this->model->insert())
                return $this->json(
                array('success' => true, 'message' => 'Thêm ảnh thành công'));
            else
                return $this->json(
                array('success' => false, 
                'message' => 'Xảy ra lỗi khi cố thêm ảnh mới vào thư viện'));
        } else {
            return $this->json(
            array('success' => false, 
            'message' => 'Thông tin nhập vào chưa hợp lệ'));
        }
    }
    #[Authorize(roles = 'Administrator')]
    public function editAction ()
    {
        //Lấy ra thông tin ảnh
        $model = new Areas_Gallery_Models_GalleryPhoto($this->params[0]);
        //Lấy ra thông tin của thư viện ảnh
        $gallery = new Areas_Gallery_Models_Gallery($model->gallery_id);
        //Trả về view
        $this->view->gallery = $gallery;
        return $this->view($model);
    }
    #[Authorize(roles = 'Administrator')]
    public function editPost (Areas_Gallery_Models_GalleryPhoto $model)
    {
        if ($this->model->validate()) {
            if ($this->model->update())
                return $this->json(
                array('success' => true, 'message' => 'Cập nhật ảnh thành công'));
            else
                return $this->json(
                array('success' => false, 
                'message' => 'Xảy ra lỗi khi cập nhật ảnh'));
        } else {
            return $this->json(
            array('success' => false, 
            'message' => 'Thông tin nhập vào chưa hợp lệ'));
        }
    }
    #[Authorize(roles = 'Administrator')]
    public function deletePost (Areas_Gallery_Models_GalleryPhoto $model)
    {
        if ($this->model->delete())
            return $this->json(
            array('success' => true, 'message' => 'Xóa ảnh thành công'));
        else
            return $this->json(
            array('success' => false, 
            'message' => 'Xảy ra lỗi khi cố gắng xóa ảnh'));
    }
}